1. Field of the Invention
The present invention relates to a data transmission control system for allowing data to be transmitted between a plurality of communication terminals.
2. Description of the Prior Art
A recent achievement in the communications art is a local area network (LAN) in which a plurality of computers may be connected to a network to share a file, a printer and other peripherals in order to scatter the loads of data processing. In this kind of a system, where the data is to be transmitted occur in bursts, there is extensively used a random access control technique which does not set up particular links between individual terminals. Instead, any of the terminals may have random access to a common bus to transmit data (packets) as desired.
For details of the random access control technique, a reference may be made to an article "Multiaccess Protocols in Packet Communication Systems" presented by FOUAD A. TOBAGI in IEEE TRANSACTIONS ON COMMUNICATIONS, VOl. COM-28, NO. 4, April issue, 1980. The Carrier Sense Multiple Access (CSMA) system as disclosed in the above article is such that just before beginning to send a packet, a terminal determines whether or not a data bus is occupied (carrier sense). If it is not occupied, the terminal sends a packet, thereby reducing collisions of packets on the data bus which would destroy data.
The carrier sense alone, however, cannot fully eliminate the collision of packets because a plurality of terminals may start sending packets at substantially the same time. In the light of this, a use is made of a system in which a receive side terminal receives a normal packet and returns an acknowledge (ACK) packet to a transmit side terminal for confirmation purpose. Then, the transmit side terminal retransmits the same packet when it fails to receive the ACK packet from the receive side terminal.
A reference will be made to FIGS. 1 and 2 for describing details and problems of the CSMA/ACK system.
As shown, each of a plurality of terminals 2a to 2n of the CSMA/ACK system is made up of a receiver 21 connected to a data bus 6 for receiving packets data, a carrier sensor 211 for sensing a packet which may be transmitted over the bus 6, a receive packet buffer 22 for temporarily storing a received packet, a packet detector 26 for detecting the kind of a packet that is received, an ACK packet detector circuit 23 which produces an output when the receive packet is an ACK packet, a timer 25, a time-out judging circuit 24, a transmit packet buffer 29 for temporarily storing a transmit packet, a driver 27 connected to the data bus 6 for transmitting a packet, a transmission controller 28 for controlling packet transmission, and a controller 20 for controlling the general operations which a terminal needs to perform.
When data which is to be transmitted occurs at the transmit side terminal 2a, the controller 20 prepares a transmit packet by adding a header, an address, a parity, and other informations to the data (step 2001). Then controller 20 writes it into the buffer 29 while notifying the transmission controller 28 of the generation of the transmit packet. If no packet is present on the bus 6, as sensed by the carrier sensor 211 (step 2002), the controller 20 informs the transmission controller 28 of such an idle state of the bus 6. The packet stored in the buffer 29 is sent to the bus 6 via the driver 27 (step 2003). At the same time, the transmission controller 28 resets the timer 25 to cause it to start counting time.
On the other hand, at the receive side terminal 2b, the packet which is received is fed to the buffer 22 via the receiver 21. When the packet detector 26 recognizes that a normal packet meant for its own terminal has been received, the controller 20 reads the packet out of the buffer 22 and prepares an ACK packet which is then returned via the buffer 29 and driver 27.
When the ACK packet is received by the transmit side terminal 2a, the ACK packet detector 23 detects it and produces a signal. The time-over judging circuit 24 monitors the output of the timer 25 and the output of the detector 23 to see if the ACK packet has been received within a predetermined period of time (step 2004). If the predetermined period of time has expired before the receipt of the ACK packet, the judging circuit 24 produces an output signal. On the other hand, if the ACK packet has been received within the predetermined period of time, the controller 20 receives the output signal of the detector 23 via a gate 201. In turn, controller 20 causes the transmission controller 28 to erase the packet in the buffer 29, thereby ending the transmission procedure (step 2005). If the ACK packet has not been received within the predetermined period of time, the transmission controller 28 responds to the output of the judging circuit 24 (i.e. packet retransmit request) by entering into a packet retransmission procedure to return to the step 2002.
As described above, in the prior art system, both the transmit and receive paths of the individual terminals are directly connected to the data bus. This brings about a problem. When packets are transmitted at the same time and are destroyed to make their destination addresses unidentifiable or when packets are determined to be faulty by the examination of data in the packets, all of the terminals 2 which are started to transmit packets simultaneously and which fail to receive ACK packets simply repeat the packet retransmission procedure individually. Another problem is that once such a conflict of packets occurs, the data bus is occupied wastefully from the instant of packet transmission to the instant of ACK packet receipt, i.e., throughout the previously mentioned predetermined period of time. Due to such problems, the throughput of the system becomes extremely low as the communication frequency of the terminals is increased.
Further, U.S. Pat. No. 4,063,220 discloses a CSMA/CD (collision detection) system in which a terminal transmits a packet while receiving a packet at the same time. By comparing the contents transmitted and received every moment, the terminal rapidly detects the occurrence of a packet collision. When a collision is detected, the terminal interrupts the transmission. The CSMA/CD system also suffers from the drawback that each of the terminals which transmitted at the same time have to execute a retransmission procedure after a random period of time. Also, a data bus is wastefully occupied during the interval between the transmission and the detection of a collision. An increase in the communication frequency of the terminals directly translates into a decrease in the throughput.